import { defineStore } from 'pinia'
import { findDictByType } from '@/servers/oauth/api/zidianmeijucanshutongyongchaxun'

export interface userStateTypes {
  categorizeOptions: any[]
}

const useAgentStore = defineStore({
  id: 'agent',
  state: (): userStateTypes => ({
    categorizeOptions: [] // 智能体-分类列表
  }),
  actions: {
    /**
     * 获取智能体分类选项列表。
     * 如果 `reset` 参数为 `false` 且 `categorizeOptions` 已有数据，则直接返回现有数据；
     * 否则，通过调用 `findDictByType` 方法获取新的分类选项数据，并更新 `categorizeOptions`。
     * @param {boolean} [reset=false] - 是否重置分类选项数据。如果为 `true`，则强制重新获取数据。
     * @returns {Promise<any[]>} - 返回一个包含分类选项的数组。
     */
    async getCategorizeOptions(reset = false): Promise<any[]> {
      if (!reset && this.categorizeOptions.length > 0) {
        return this.categorizeOptions
      }
      const res: any = await findDictByType({ type: 'ZNTFL' })
      this.categorizeOptions = [...res.data.data]
      return this.categorizeOptions
    },

    async clearCategorizeOptions() {
      this.categorizeOptions = []
    }
  }
})

export default useAgentStore
